package org.linlinjava.litemall.db.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.linlinjava.litemall.db.domain.LitemallChatSession;
import java.util.List;

@Mapper
public interface LitemallChatSessionMapper {
    /**
     * 获取用户的会话列表
     */
    List<LitemallChatSession> selectByUserId(@Param("userId") String userId);

    /**
     * 获取指定会话
     */
    LitemallChatSession selectByUserIdAndPartnerId(
            @Param("userId") String userId,
            @Param("partnerId") String partnerId
    );

    /**
     * 创建或更新会话
     */
    int insertOrUpdate(LitemallChatSession session);

    /**
     * 更新最后一条消息
     */
    int updateLastMessage(
            @Param("userId") String userId,
            @Param("partnerId") String partnerId,
            @Param("lastMessage") String lastMessage
    );

    /**
     * 增加未读消息数
     */
    int increaseUnreadCount(
            @Param("userId") String userId,
            @Param("partnerId") String partnerId
    );

    /**
     * 清空未读消息数
     */
    int clearUnreadCount(
            @Param("userId") String userId,
            @Param("partnerId") String partnerId
    );
}